25583. Easy odd sum

 

Hablu likes odd numbers a lot. So he wants the sum of all odd numbers in range [a, b]. That is, find the sum of all odd numbers i such that (a ≤ i ≤ b). Seems easy right? Because it is.

 

Input. The first and only line will contain 2 integers a, b (0 ≤ a b 108).

 

Output. In one line, output the value of the sum.

 

Sample input

Sample output

0 9

25

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Увеличим а на 1, если оно четное. Уменьшим b на 1, если оно четное. Если a > b, то ответ 0 (такое может случиться если изначально интервал [а, b] содержит одно четное число).

Осталось найти сумму арифметической прогрессии от а до b, где а и b нечетные. Количество нечетных чисел на этом интервале равно (ba) / 2 + 1. Таким образом искомая сумма чисел равна

 

Реализация алгоритма

 

#include <stdio.h>

 

long long a, b, res;

 

int main(void)

{

  scanf("%d %d", &a, &b);

  if (a % 2 == 0) a++;

  if (b % 2 == 0) b--;

 

  if (a > b) res = 0;

  else res = (a + b) / 2 * ((b - a) / 2 + 1);

 

  printf("%lld\n", res);

  return 0;

}